﻿Imports System.Runtime.InteropServices
Imports ADODB
Imports System.Configuration
Partial Public Class frm_DatosSimulacion
    Inherits System.Web.UI.Page

    Dim iContador_A As Integer
    Dim iContador_C As Integer
    Dim iContador_DF As Integer

    Dim IDSeguro As Integer

    Private mMensajeError As String = String.Empty

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then


            'imFechaNacimiento.Attributes.Add("onclick", "popCalendar.show(this, 'txtFechaNacimiento', 'dd/mm/yyyy', 'es', true)")
            'Anthem.Manager.AddScriptForClientSideEval(" Calendar.setup({inputField:'txtFechaNacimiento',ifFormat:'%d-%m-%Y',displayArea:'show_e',daFormat:'%d-%m-%Y',button:'imFechaNacimiento',align:'Tl',singleClick:true});   ")

        End If

    End Sub


    Public Function ValidaCliente() As Boolean 'ByRef Service As Servicio) As Integer

        Dim CSrm As SrmConector
        Dim Response As Parametros
        Dim Ret As Integer
        Dim FechaMsgEntrada As String
        Dim FechaMsgSalida As String
        Dim Respuesta As String


        Try
            ValidaCliente = False

            Ret = ResultOK

            '' ''If Service.Tipo = TypeServiceEnum.TypeServiceSRM Then

            '' ''    If Service.Srm Is Nothing Then
            '' ''        Ret = ERROR_EXECUTE_NOTINFOSRM
            '' ''        GoTo ExitServiceExec
            '' ''    End If

            '' ''    If Service.Request Is Nothing Then
            '' ''        Ret = ERROR_EXECUTE_NOTINFOSRM
            '' ''        GoTo ExitServiceExec
            '' ''    End If

            '' ''    If Service.Request.Count <= 0 Then
            '' ''        Ret = ERROR_EXECUTE_NOTINPUT
            '' ''        GoTo ExitServiceExec
            '' ''    End If

            Dim Rut As Integer
            Dim szRut As String
            Dim szDatosCliente As String
            Dim szNombreContratante As String
            Dim arr_NombreContratante()

            Rut = Mid(Me.txtRutContratante.Text.Replace("-", "").Replace(".", ""), 1, Len(Me.txtRutContratante.Text.Replace("-", "").Replace(".", "")) - 1)
            If Rut.ToString.Length = 7 Then
                szRut = "00" + Rut.ToString
            Else
                szRut = "0" + Rut.ToString
            End If


            CSrm = New SrmConector
            With CSrm
                .Nodo = "U062"
                .Aplicacion = "CLT0"
                .Contexto = "00"
                .Tipo = "08" 'cantidad de kilos
                .Mensaje = "12345678L001L" + szRut
            End With

            FechaMsgEntrada = Format(Now, "dd/mm/yyyy hh:MM:ss")
            If CSrm.Invoke Then
                ValidaCliente = True
                szDatosCliente = CSrm.Respuesta
                szDatosCliente = Mid(szDatosCliente, 3, Len(szDatosCliente) - 2)

                arr_NombreContratante = Split(Mid(szDatosCliente, 12, 50), "/")
                If arr_NombreContratante.Length = 1 Then
                    szNombreContratante = arr_NombreContratante(0).ToString.Trim
                ElseIf arr_NombreContratante.Length = 2 Then
                    szNombreContratante = arr_NombreContratante(1).ToString.Trim + " " + arr_NombreContratante(0).ToString.Trim
                ElseIf arr_NombreContratante.Length = 3 Then
                    szNombreContratante = arr_NombreContratante(2).ToString.Trim + " " + arr_NombreContratante(0).ToString.Trim + " " + arr_NombreContratante(1).ToString.Trim
                End If
                LblNombreContratante.Text = szNombreContratante
                LblNombreContratante.AutoUpdateAfterCallBack = True

                '    With Service.Srm
                '        .RetornoApp = CInt(CSrm.RetornoAplicacion)
                '        .RetornoSrm = CSrm.RetornoSrm
                '        .StatusSrm = CSrm.StatusSrm
                '    End With

                '    '' ''Ret = GetServiceResponse(Response, CSrm.Respuesta, Service.CodigoServicio, Services)
                '    '' ''If Ret = ResultOK Then
                '    '' ''    Service.Response = Response
                '    '' ''End If
                'Else
                '    Ret = ERROR_EXECUTE_ERRORSRM
                '    With Service.Srm
                '        .RetornoApp = CInt(CSrm.RetornoAplicacion)
                '        .RetornoSrm = CSrm.RetornoSrm
                '        .StatusSrm = CSrm.StatusSrm
                '    End With
            End If


        Catch ex As Exception

        End Try


    End Function

    Public Function TieneSeguros() As Boolean 'ByRef Service As Servicio) As Integer
        Dim CSrm_TS As SrmConector
        Dim Response As Parametros
        Dim Ret As Integer
        Dim FechaMsgEntrada As String
        Dim szSeguro_A_C As String


        Try

            Ret = ResultOK

            Dim Rut As Integer
            Dim szRut As String
            Dim szDatosCliente As String
            
            Rut = Mid(Me.txtRutContratante.Text.Replace("-", "").Replace(".", ""), 1, Len(Me.txtRutContratante.Text.Replace("-", "").Replace(".", "")) - 1)
            'szRut = "0" + Rut.ToString
            szRut = Format$(Rut, "000000000")
            'szRut = "00" + Rut.ToString

            CSrm_TS = New SrmConector
            With CSrm_TS
                .Nodo = "U062"
                .Aplicacion = "CLT0"
                .Contexto = "00"
                .Tipo = "08" 'cantidad de kilos
                '.Mensaje = "12345789L063V0009" + szRut 
                .Mensaje = "12345678L053V0012" + szRut + "SCS"
            End With

            FechaMsgEntrada = Format(Now, "dd/mm/yyyy hh:MM:ss")
            If CSrm_TS.Invoke Then

                szDatosCliente = CSrm_TS.Respuesta
                szDatosCliente = Mid(szDatosCliente, 17, Len(szDatosCliente) - 16)
                For i = 1 To Len(szDatosCliente) / 25
                    
                    szSeguro_A_C = ValidaSeguro_A(Mid(szDatosCliente, ((i * 25) - 25) + 4, 25 - 3))
                    If szSeguro_A_C = "A" Then
                        iContador_A = iContador_A + 1
                    ElseIf szSeguro_A_C = "C" Then
                        iContador_C = iContador_C + 1
                    ElseIf szSeguro_A_C = "DF" Then
                        iContador_DF = iContador_DF + 1
                    End If

                    'TextBox1.Text = TextBox1.Text + " - " + Mid(szDatosCliente, ((i * 25) - 25) + 4, 25 - 3)

                Next
                'TextBox1.AutoUpdateAfterCallBack = True


            End If


        Catch ex As Exception

        End Try

    End Function

    Private Function ValidaSeguro_A(ByVal FolioSeguro As String) As String

        Dim CSrm As SrmConector
        Dim Response As Parametros
        Dim Ret As Integer
        Dim arr()


        Try

            Ret = ResultOK

            Dim szDatosCliente As String

            CSrm = New SrmConector
            With CSrm
                .Nodo = "U067"
                .Aplicacion = "SCS0"
                .Contexto = "00"
                .Tipo = "08" 'cantidad de kilos
                .Mensaje = "123456789111136" + FolioSeguro.Trim
                '.Mensaje = "123456789111136100000003061807 "
            End With

            If CSrm.Invoke Then
                szDatosCliente = CSrm.Respuesta
                If Mid(szDatosCliente, 1, 2) = "00" Then
                    arr = Split(szDatosCliente, "~")
                    If arr(9) = "10010223" Then
                        ValidaSeguro_A = "A"
                    ElseIf arr(9) = "1001091501" Or arr(9) = "1001091502" Or arr(9) = "1001091503" Or arr(9) = "1001091504" Then
                        ValidaSeguro_A = "C"
                    ElseIf arr(9) = "1001104801" Or arr(9) = "1001104802" Or arr(9) = "1001104803" Or arr(9) = "1001104804" Or arr(9) = "1001105301" Or arr(9) = "1001105302" Then
                        ValidaSeguro_A = "DF"
                    End If

                End If
            End If

        Catch ex As Exception

        End Try

    End Function

    Protected Sub txtRutContratante_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles txtRutContratante.TextChanged

        LblNombreContratante.Text = ""
        LblNombreContratante.AutoUpdateAfterCallBack = True
        btSimular.Enabled = False
        btSimular.AutoUpdateAfterCallBack = True


        'Dim fRut As New FunGenerales
        'Dim lRut As Integer
        'Dim szDigito As String
        'szDigito = ""
        'If Not fRut.ValidarRut(txtRutContratante.Text, lRut, szDigito) Then
        '    Exit Sub
        'End If

        'iContador_A = 0
        'iContador_C = 0
        'If ValidaCliente() Then
        '    TieneSeguros()
        'End If

        'If iContador_A > iContador_C Then
        '    btSimular.Enabled = True
        '    btSimular.AutoUpdateAfterCallBack = True
        'Else
        '    btSimular.Enabled = False
        '    btSimular.AutoUpdateAfterCallBack = True
        'End If

    End Sub

    Protected Sub btSimular_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btSimular.Click

        'If Not IsDate(CDate(txtFechaNacimiento.Text.ToString("dd/MM/yyyy"))) Then
        '    'MsgBox("Debe Ingresar Fecha de Nacimiento Valida")
        '    Anthem.Manager.AddScriptForClientSideEval("alert('Debe Ingresar Fecha de Nacimiento Valida');")
        '    txtFechaNacimiento.Text = ""
        '    txtFechaNacimiento.AutoUpdateAfterCallBack = True
        '    Exit Sub
        'End If


        Dim szFechaActual As String
        Dim szFechaNacimiento As String
        Dim arr_FechaActual()
        Dim arr_FechaNacimiento
        Dim iDia As Integer
        Dim iMes As Integer
        Dim iAnno As Integer


        szFechaNacimiento = txtFechaNacimiento.Text.Replace("-", "/")
        szFechaActual = Now.Date.ToString("dd/MM/yyyy").Replace("-", "/")
        'szFechaNacimiento = CDate(txtFechaNacimiento.Text.Replace("-", "/"))
        'szFechaActual = CDate(Now.Date.ToString("dd/MM/yyyy").Replace("-", "/"))


        arr_FechaActual = Split(szFechaActual, "/")
        arr_FechaNacimiento = Split(szFechaNacimiento, "/")

        iDia = arr_FechaActual(0) - arr_FechaNacimiento(0)
        iMes = arr_FechaActual(1) - arr_FechaNacimiento(1)
        iAnno = arr_FechaActual(2) - arr_FechaNacimiento(2)
        If iMes < 0 Then
            iAnno = iAnno - 1
        ElseIf iMes = 0 Then
            If iDia < 0 Then
                iAnno = iAnno - 1
            End If
        End If

        'If iAnno > 64 Then
        'Anthem.Manager.AddScriptForClientSideEval("alert('Edad del Asegurado debe ser entre 18 a 64 años');")
        'Exit Sub
        'If iAnno < 17 Then
        '    Anthem.Manager.AddScriptForClientSideEval("alert('Edad del Asegurado debe ser entre 18 a 64 años');")
        '    Exit Sub

        'ElseIf iAnno = 17 And iMes = 0 And iDia < 0 Then
        '    Anthem.Manager.AddScriptForClientSideEval("alert('Edad del Asegurado debe ser entre 18 a 64 años');")
        '    Exit Sub
        'ElseIf iAnno = 18 And iMes = 0 And iDia < 0 Then
        '    Anthem.Manager.AddScriptForClientSideEval("alert('Edad del Asegurado debe ser entre 18 a 64 años');")
        '    Exit Sub
        '    'ElseIf iAnno >= 64 And iMes = 0 And iDia >= 0 Then
        '    '    Anthem.Manager.AddScriptForClientSideEval("alert('Edad del Asegurado debe ser entre 18 a 64 años');")
        '    '    Exit Sub
        'ElseIf iAnno >= 65 Then
        '    Anthem.Manager.AddScriptForClientSideEval("alert('Edad del Asegurado debe ser entre 18 a 64 años');")
        '    Exit Sub
        'End If


        If iAnno < 18 Or iAnno >= 65 Then
            Anthem.Manager.AddScriptForClientSideEval("alert('Edad del Asegurado debe ser entre 18 a 64 años');")
            Exit Sub
        End If

        Dim exec As New BusinessCatastrofico.TMP_VentaSeguro
        Dim rp As New NetResponse.MsSqlServer

        Dim Rut As Integer
        Dim szDV As String
        'Dim IDSeguro As Integer
        Dim szURL As String

        Rut = Mid(Me.txtRutContratante.Text.Replace("-", "").Replace(".", ""), 1, Len(Me.txtRutContratante.Text.Replace("-", "").Replace(".", "")) - 1)
        szDV = Mid(Me.txtRutContratante.Text, Len(Me.txtRutContratante.Text), 1)

        exec._RutContratante = Rut
        exec._DVContratante = szDV
        exec._NombreContratante = LblNombreContratante.Text
        exec._FechaNacimientoAsegurado = txtFechaNacimiento.Text
        exec._iAnno = iAnno
        exec.Get_IDSeguro_TMP(rp)

        If rp.TieneDatos Then
            IDSeguro = rp.Ds.Tables(0).Rows(0).Item(0)
        End If

        If rp.Errores Then
            mMensajeError = "alert('Error');"
        End If

        ''gr_Modelo.Columns(1).Visible() = False

        rp.Dispose()
        exec.Dispose()

        'szURL = "frm_Valorizacion.aspx?IDSeguro=" & IDSeguro.ToString & "&iAnno=" & iAnno.ToString

        If mMensajeError.Trim.Length > 1 Then
            Anthem.Manager.AddScriptForClientSideEval("alert('Error');")
        Else
            Response.Redirect("frm_Valorizacion.aspx?IDSeguro=" & IDSeguro.ToString & "&iAnno=" & iAnno.ToString)
        End If
    End Sub

    Protected Sub btConsultar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btConsultar.Click
        Dim fRut As New FunGenerales
        Dim lRut As Integer
        Dim szDigito As String
        szDigito = ""

      
        LblNombreContratante.Text = ""
        LblNombreContratante.AutoUpdateAfterCallBack = True
        txtFechaNacimiento.Text = ""
        txtFechaNacimiento.AutoUpdateAfterCallBack = True

        If Not fRut.ValidarRut(txtRutContratante.Text, lRut, szDigito) Then
            txtRutContratante.Text = ""
            txtRutContratante.AutoUpdateAfterCallBack = True
            Exit Sub
        End If

        iContador_A = 0
        iContador_C = 0
        iContador_DF = 0

        If ValidaCliente() Then
            TieneSeguros()
            If (iContador_A >= 1 Or iContador_C >= 1 Or iContador_DF >= 1) Then 'PR --> 'If iContador_A > iContador_C Or iContador_DF >= 1 Then
                btSimular.Enabled = True
                btSimular.AutoUpdateAfterCallBack = True
            Else
                Anthem.Manager.AddScriptForClientSideEval("alert('Cliente debe contratar el Seguro Devolución Total o Seguro Devolucion Full antes de Contratar el Seguro Catastrófico');")
                btSimular.Enabled = False
                btSimular.AutoUpdateAfterCallBack = True
            End If
            ' btSimular.Enabled = True
            'btSimular.AutoUpdateAfterCallBack = True
        Else
            Anthem.Manager.AddScriptForClientSideEval("alert('Rut ingresado no es Cliente');")
        End If
    End Sub
End Class